Data hashing is widely used in computing and storage systems for a variety of purposes, e.g., fast data addressing/locating, Bloom filter, data protection, and cryptography. A hash function can map data of arbitrary size to a fixed-size data block that typically has a much smaller size than the original data. There are a large number of hash functions, notably including various cyclic redundancy check (CRC) functions, checksums functions, and cryptographic hash functions. In current practice, a hash function carries out the hashing computation directly on the original data to obtain its hash value, and the hashing computation is typically realized by a host processor unit such as central processing unit (CPU).